package logger

import (
	"io"
	"os"
	"github.com/gin-gonic/gin"
	"github.com/sirupsen/logrus"
)

var logFile *os.File

// Init 初始化日志输出
func Init(path, level string) {
	if path != "" {
		if f, err := os.OpenFile(path, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644); err == nil {
			logFile = f
			logrus.SetOutput(f)//日志输出到文件
		} else {
			logrus.Warnf("open log file failed: %v", err)
		}
	}
	if lv, err := logrus.ParseLevel(level); err == nil {
		logrus.SetLevel(lv)
	}
	logrus.SetFormatter(&logrus.TextFormatter{FullTimestamp: true, TimestampFormat: "2006-01-02 15:04:05"})
	if logFile == nil {
		logrus.Warn("未重定向 gin 日志: 主日志文件未打开")
		return
	}
	//重定向 gin 日志
	gin.DisableConsoleColor()
	gin.DefaultWriter = io.MultiWriter(logFile)
	gin.DefaultErrorWriter = gin.DefaultWriter
	logrus.Info("gin 默认日志已重定向到主日志文件")
}
